/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package cenario;

import Desafios.Desafios;

import java.util.ArrayList;
import java.util.List;
import recurso.Arma;
import recurso.Equipamento;
import recurso.Suprimento;


/**
 *
 * @author Renato
 */
public class Lugar {

    private String nome;
    private String clima;
    private Lugar[] acessos;//add
    private Desafios desafios;
    private List<Suprimento> suprimento;// add remov e find
    private List<Arma> arma;
    private List<Equipamento> equipamento;
    private String item;
    private int cont;
    
    
    public Lugar() {
        
        cont=0;
        acessos = new Lugar[4];

        suprimento = new ArrayList<Suprimento>();


        arma = new ArrayList<Arma>();

        equipamento = new ArrayList<Equipamento>();



    }

// clase lugar 

    public void adicionaArma(Arma a) {// utiliza a classe arma dos recusos do programa para adicionar  uma Arma a no local

        this.arma.add(a);

    }

    public void removeArma(int a) {

        this.arma.remove(a);

    }

    public Arma findArma(int a) {

        return this.arma.get(a);


    }

    public void adicionaSuprimento(Suprimento x) {

        this.suprimento.add(x);

    }

    public void removeSuprimento(int x) {

        this.suprimento.remove(x);

    }

    public Suprimento findSuprimento(int x) {// passar id  {

         return this.suprimento.get(x);

    }

    public void adicionaEquipamento(Equipamento b) {

        this.equipamento.add(b);

    }

    public void removeEquipamento(int b) {

        this.equipamento.remove(b);

    }

    public Equipamento findEquipamento(int b) {

       return this.equipamento.get(b);

    }

    public boolean adicionaAcesso(Lugar l) {//refatorar o adiciona acesso para gerenciar o vetor e retirar o parametro num   gerenciar o metodo
        
         
        // Ideal usar exceptions!!!
        
        if ((cont > 4)) {

            //System.out.println("numero invalido");
            return false;
        }else{
             acessos[cont] = l;
             cont++;
             return true;
             
        }
        
    }

    public void definirClima(int n) {


        if (n == 0) {
            setClima("limpo");

        }
        if (n == 1) {
            setClima("chuvoso");

        }

    }

    public Lugar getSaida(int i) {
        return acessos[i];
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getClima() {
        return clima;
    }

    public void setClima(String clima) {
        this.clima = clima;
    }

    public Lugar[] getAcessos() {
        return acessos;
    }

    public void setAcessos(Lugar[] acessos) {
        this.acessos = acessos;
    }

    
    

    public void setDesafios(Desafios desafios) {
        this.desafios = desafios;
    }

    /**
     * @return the desafios
     */
    public Desafios getDesafios() {
        return desafios;
    }

    /**
     * @return the suprimento
     */
    public List<Suprimento> getSuprimento() {
        return suprimento;
    }

    /**
     * @param suprimento the suprimento to set
     */
    public void setSuprimento(List<Suprimento> suprimento) {
        this.suprimento = suprimento;
    }

    /**
     * @return the arma
     */
    public List<Arma> getArma() {// a classe lugar deve ser resposnavel de manter todas s propriedades e encapsular os list 
        return arma;
    }

    /**
     * @param arma the arma to set
     */
    public void setArma(List<Arma> arma) {
        this.arma = arma;
    }

    /**
     * @return the equipamento
     */
    public List<Equipamento> getEquipamento() {
        return equipamento;
    }

    /**
     * @param equipamento the equipamento to set
     */
    public void setEquipamento(List<Equipamento> equipamento) {
        this.equipamento = equipamento;
    }

    /**
     * @return the item
     */
    public String getItem() {
        return item;
    }

    /**
     * @param item the item to set
     */
    public void setItem(String item) {
        this.item = item;
    }
}